package cn.stylefeng.guns.modular.task.service;

import cn.stylefeng.guns.base.pojo.page.LayuiPageInfo;
import cn.stylefeng.guns.modular.task.entity.TaskOrder;
import cn.stylefeng.guns.modular.task.model.params.TaskOrderParam;
import cn.stylefeng.guns.modular.task.model.result.TaskOrderResult;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 作业单表 服务类
 * </p>
 *
 * @author zhucx
 * @since 2021-06-08
 */
public interface TaskOrderService extends IService<TaskOrder> {

    /**
     * 新增
     *
     * @author zhucx
     * @Date 2021-06-08
     */
    void add(TaskOrderParam param);

    /**
     * 删除
     *
     * @author zhucx
     * @Date 2021-06-08
     */
    void delete(TaskOrderParam param);

    /**
     * 更新
     *
     * @author zhucx
     * @Date 2021-06-08
     */
    void update(TaskOrderParam param);

    /**
     * 查询单条数据，Specification模式
     *
     * @author zhucx
     * @Date 2021-06-08
     */
    TaskOrderResult findBySpec(TaskOrderParam param);

    /**
     * 查询列表，Specification模式
     *
     * @author zhucx
     * @Date 2021-06-08
     */
    List<TaskOrderResult> findListBySpec(TaskOrderParam param);

    /**
     * 查询分页数据，Specification模式
     *
     * @author zhucx
     * @Date 2021-06-08
     */
     LayuiPageInfo findPageBySpec(TaskOrderParam param,String condition,Long operateId);

	int countBydate(TaskOrderParam param,Long operateId);

	LayuiPageInfo findPageBySpecApplets(TaskOrderParam param, String condition,Long operateId);

	/**
	 * app 作业看板
	 * @param param
	 * @return
	 */
	List<TaskOrderResult> findtaskreportList(TaskOrderParam param,Long operateId);

	List<TaskOrderResult> operateTaskList(TaskOrderParam param, String condition,Long operateId);

	List<TaskOrderResult> operateTaskSum(TaskOrderParam param, String condition,Long operateId);

	List<TaskOrderResult> panelOperateDay(TaskOrderParam param);

	List<TaskOrderResult> panelOperateMonth(TaskOrderParam param);

	TaskOrderResult findSum(TaskOrderParam taskOrderParam);

	TaskOrderResult findCount(TaskOrderParam taskOrderParam);

	List<TaskOrderResult> findSumtaskWork(TaskOrderParam taskOrderParam);

	List<TaskOrderResult> panelOperateMonthDuibi(TaskOrderParam taskOrderParam);

	TaskOrderResult findSum2(TaskOrderParam taskOrderParam);


}
